关于python:如何避免“WindowsError:[错误5]访问被拒绝”

您所在的位置:网站首页 my documents拒绝访问 关于python:如何避免“WindowsError:[错误5]访问被拒绝”

关于python:如何避免“WindowsError:[错误5]访问被拒绝”

2024-07-13 11:23:24| 来源: 网络整理| 查看: 265

有重新创建文件夹的脚本:

12345# Remove folder (if exists) with all files if os.path.isdir(str(os.path.realpath('..') +"\\my_folder")):         shutil.rmtree(os.path.realpath('..') +"\\my_folder", ignore_errors=True) # Create new folder os.mkdir(os.path.realpath('..') +"\\my_folder")

这几乎总是有效,但在某些情况下(在创建步骤中),我得到了

1WindowsError: [Error 5] Access is denied: 'C:\\Path\\To\\my_folder'

什么可能导致此错误,我该如何避免?

相关讨论 检查一下:stackoverflow.com/questions/12990112/

权限可能是问题,但我在os.rename()上遇到了同样的问题'[错误5]拒绝访问',并且一次简单的重试循环能够在重试几次后重命名该文件。

123456for retry in range(100):     try:         os.rename(src_name,dest_name)         break     except:         print"rename failed, retrying..." 相关讨论 这是一个很好的提示。据推测,如果它在绝大多数时间都有效,那么它的一些短暂问题,只是重试是失败前的正确选择。 如上所述,您无法判断您是否未能重命名。一个修复(并保持提升回溯正确)是except: if retry

请参阅RemoveDirectory文档; "RemoveDirectory函数在关闭时标记要删除的目录。因此,在关闭目录的最后一个句柄之前,不会删除该目录。"

这意味着如果某些东西设法创建了一个删除目录的句柄(在创建和删除之间),那么实际上并没有删除该目录,而是"访问被拒绝",

要解决此问题,请在删除之前重命名要删除的目录。

所以

123while True:   mkdir('folder 1')   rmdir('folder 1')

可以失败,解决;

12345while True:   mkdir('folder 1')   new_name = str(uuid4())   rename('folder 1', new_name)   rmdir(new_name) 相关讨论 问题不再是实际问题,所以我无法检查。但我很确定这应该有效 我可以确认这个技巧有效。有趣的是,在调用rmdir之后,我正在使用os.path.exists()来检查文件夹是否已成功删除,然后再尝试重新创建它。即使os.path.exists(path)返回False,我仍然在运行os.mkdir(path)时遇到Access被拒绝错误。

什么可能导致此错误?

您只是无权访问您正在为当前正在运行的进程(python.exe)编写的文件夹,或者甚至可能访问用户。除非您的用户是管理员,否则可能存在您没有写入权限的目录。

我怎么能避免呢?

通常,为了避免这种异常,可以使用try和except块,在这种情况下,它将是IOError。因此,如果您只是想忽略访问被拒绝并继续使用该脚本,您可以尝试:

123456789101112try:     # Remove folder (if exists) with all files     if os.path.isdir(str(os.path.realpath('..') +"\\my_folder")):         shutil.rmtree(os.path.realpath('..') +"\\my_folder", ignore_errors=True)     # Create new folder     os.mkdir(os.path.realpath('..') +"\\my_folder") except IOError:     print("Error upon either deleting or creating the directory or files.") else:     print("Actions if file access was succesfull") finally:     print("This will be executed even if an exception of IOError was encountered")

如果你真的没想到这个错误而且不应该发生这种情况,你必须更改文件的权限。 根据您的用户权限,您可以采取各种步骤。

可以作为Admin:Option A执行程序的用户

右键单击cmd.exe。 单击以管理员身份运行。 通过cd转到您的脚本位置,因为除非您编辑了某些参数,否则它将在C:\Windows\system32处打开。 运行脚本> python myscript.py。

可以作为Admin:Option B执行程序的用户

打开文件资源管理器。 转到您要写入的文件夹或文件夹。 右键单击它。 选择属性。 在属性窗口中,选择安全性选项卡。 单击编辑并根据需要进行编辑,或者需要授予对程序或用户的访问权限。

没有管理员权限的用户:

这可能意味着它不是您的计算机。 如果在Uni或工作时检查PC帮助台,或者询问您的老师是否在学校。 如果您在家,并且您的计算机意味着您已使用非管理员用户登录。您创建的第一个通常是默认情况下。如果是,请检查"控制面板"中的用户设置。 从那以后休息几乎是一样的。 相关讨论 我尝试了这个答案的一切,但没有任何效果,它真的困扰我。 我遇到了同样的问题,它绝对不是权限问题。如果我在rmtree和mkdir之间放置几秒钟的睡眠,它每次都有效,但是如果我立即执行mkdir,它每次都会失败。 哇这个问题是老哈哈,事情是原来的提问者这么多改变了问题,我的回答基本上只是对于许可问题的概述。最初的问题就是在没有谈论异常的情况下无法访问文件夹,但他们实际上想要一个答案,没有例外被抛出所以你可能是对的

对我来说,它以这种方式工作:

123while os.path.isdir (your_path):     shutil.rmtree (your_path, ignore_errors=True) os.makedirs (your_path)

创建您的python脚本文件。在这种情况下,您可以将其复制到C: WINDOWS system32中。脚本文件正在创建名为"Smaog"的文件夹

123import os os.chdir('C:/Program Files') os.makedirs('Smaog')

在您喜欢的任何文件夹中创建批处理文件。

1234echo off title Renaming Folder python sample.py pause

保存批处理文件。要运行它,请右键单击并选择以管理员身份运行

如果你不想把你的python脚本放在C: WINDOWS system32中,你可以选择这样做。 在批处理文件中,指明python脚本文件所在的文件夹/目录。

12345echo off title Renaming Folder cd c:\Users\Smaog\Desktop python sample.py pause

然后按照上面的说明以管理员身份运行它。

之所以会发生这种情况,是因为您没有检查是否有权打开该路径。您需要更改这些文件夹的权限。

我把Py2切换到Py3之后昨晚遇到了这个问题,并意识到我正在为所有用户安装它。这意味着您将其安装到Program Files目录而不是%AppData%。大多数以管理员身份运行解决了这个问题,就像你上面的一些人所说,但我使用的是VSCode,有时甚至是PyCharm,并喜欢在其中使用终端。即使您尝试以管理员身份运行这些程序,在尝试专注于您可爱的代码时也会有很多烦人的时间。

我的解决方案:1)完全卸载(包括Py Launcher)2)然后使用提供的安装程序安装自定义安装但是... 3)不要选择INSTALL FOR ALL USERS选项。

我认为这将使你的日子更容易,没有任何"[错误5]"行在你的命令提示符,因为它对我有用。



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭